As the speed and processing power of computers has risen, so too has the complexity of software applications that are executed by computers. Software applications may include processes that perform specific tasks. The term “process” broadly refers to any process operating on any type of data object, for example, booking (process) on an account (data object), payment (process) in a commission agreement (data object), and the like. These processes may be time critical, such that the processes have to be processed in a narrow time range. For example, commission payments, such as remuneration payments to employees or agents, may have defined time ranges to execute for a compensation plan.
Systems may parallelize processes manually by using tools to configure the processes that are to be run in parallel. However, the dispatching for every subprocess must be done manually. Several transactions may be executed using a parallelized process in systems which use the client/server technology and provide an ability to store, retrieve, analyze, and process corporate data for financial analysis, production operation, human source management, and most other business processes. For example, a parallelized process may include the definition of a job, simple job choice, and extended job choice. When generating a job, several parameters or factors may be fixed, such as the temporal starting conditions and periodicity, and the priority. Further, the processing goal for a special job can be stated, and a spool list and a spool receiver can be generated. Several steps of a job can be influenced. Jobs may be generated using a wizard and a user interface.
However, current systems for parallelizing processes cannot influence individual parameters or process-specific parameters. Jobs cannot be chosen specifically by process. Furthermore, load distribution cannot be done dynamically among several servers, but has to be explicitly stated statically for each job. Job definition can only be done manually for each job with the help of variants. Furthermore, the time needed to execute jobs is neither optimized nor minimized.
Another technology for the parallelization of processes is a so-called grid technology. The grid technology describes how resources are switched on and off depending on the system load. The grid technology represents a balancing of resources depending on a system load.
In view of the foregoing, improved systems and methods are needed that can parallelize a process by parallel processing a plurality of subprocesses of that process. Further, it would be desirable to provide a system and method that could perform the parallel processing of the subprocesses in a flexible manner, using available resources in an optimal way. Moreover, it would be advantageous to provide the possibility of dynamically distributing a workload among a plurality of servers within a system.